{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wHsFZo6akD8M",
        "outputId": "0b4d71e2-688e-48ce-e201-7fb582006828"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Files already downloaded and verified\n",
            "Files already downloaded and verified\n"
          ]
        }
      ],
      "source": [
        "import torch\n",
        "import torchvision\n",
        "import torchvision.transforms as transforms\n",
        "\n",
        "transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])\n",
        "batch_size = 8\n",
        "train_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=True, transform=transform, download=True)\n",
        "test_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=False, transform=transform, download=True)\n",
        "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2)\n",
        "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 147
        },
        "id": "VjkCK8NykPMb",
        "outputId": "0dbff098-ff40-442f-b710-28d43fce5330"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "torch.Size([8])\n"
          ]
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "\n",
        "# functions to show an image\n",
        "\n",
        "\n",
        "def imshow(img):\n",
        "    img = img / 2 + 0.5     # unnormalize\n",
        "    npimg = img.numpy()\n",
        "    plt.imshow(np.transpose(npimg, (1, 2, 0)))\n",
        "    plt.show()\n",
        "\n",
        "\n",
        "# get some random training images\n",
        "dataiter = iter(train_loader)\n",
        "# images, labels = dataiter.next()\n",
        "images, labels = next(dataiter)\n",
        "\n",
        "# show images\n",
        "imshow(torchvision.utils.make_grid(images))\n",
        "# print labels\n",
        "print(labels.shape)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "metadata": {
        "id": "QY16Ypg6KVrS"
      },
      "outputs": [],
      "source": [
        "import torch\n",
        "import torch.nn as nn\n",
        "\n",
        "class Mlp(nn.Module):\n",
        "    def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):\n",
        "        super().__init__()\n",
        "        out_features = out_features or in_features\n",
        "        hidden_features = hidden_features or in_features\n",
        "        self.fc1 = nn.Linear(in_features, hidden_features)\n",
        "        self.act = act_layer()\n",
        "        self.fc2 = nn.Linear(hidden_features, out_features)\n",
        "        self.drop = nn.Dropout(drop)\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.fc1(x)\n",
        "        x = self.act(x)\n",
        "        x = self.drop(x)\n",
        "        x = self.fc2(x)\n",
        "        x = self.drop(x)\n",
        "        return x\n",
        "\n",
        "class BasicConv(nn.Module):\n",
        "    def __init__(\n",
        "        self,\n",
        "        in_planes,\n",
        "        out_planes,\n",
        "        kernel_size,\n",
        "        stride=1,\n",
        "        padding=0,\n",
        "        dilation=1,\n",
        "        groups=1,\n",
        "        relu=True,\n",
        "        bn=True,\n",
        "        bias=False,\n",
        "    ):\n",
        "        super(BasicConv, self).__init__()\n",
        "        self.out_channels = out_planes\n",
        "        self.conv = nn.Conv2d(\n",
        "            in_planes,\n",
        "            out_planes,\n",
        "            kernel_size=kernel_size,\n",
        "            stride=stride,\n",
        "            padding=padding,\n",
        "            dilation=dilation,\n",
        "            groups=groups,\n",
        "            bias=bias,\n",
        "        )\n",
        "        self.bn = (\n",
        "            nn.BatchNorm2d(out_planes, eps=1e-5, momentum=0.01, affine=True)\n",
        "            if bn\n",
        "            else None\n",
        "        )\n",
        "        self.relu = nn.ReLU() if relu else None\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.conv(x)\n",
        "        if self.bn is not None:\n",
        "            x = self.bn(x)\n",
        "        if self.relu is not None:\n",
        "            x = self.relu(x)\n",
        "        return x\n",
        "\n",
        "\n",
        "class ChannelPool(nn.Module):\n",
        "    def forward(self, x):\n",
        "        return torch.cat(\n",
        "            (torch.max(x, 1)[0].unsqueeze(1), torch.mean(x, 1).unsqueeze(1)), dim=1\n",
        "        )\n",
        "\n",
        "\n",
        "class SpatialGate(nn.Module):\n",
        "    def __init__(self):\n",
        "        super(SpatialGate, self).__init__()\n",
        "        kernel_size = 7\n",
        "        self.compress = ChannelPool()\n",
        "        self.spatial = BasicConv(\n",
        "            2, 1, kernel_size, stride=1, padding=(kernel_size - 1) // 2, relu=False\n",
        "        )\n",
        "\n",
        "    def forward(self, x):\n",
        "        x_compress = self.compress(x)\n",
        "        x_out = self.spatial(x_compress)\n",
        "        scale = torch.sigmoid_(x_out)\n",
        "        return x * scale\n",
        "\n",
        "class reweight(nn.Module):\n",
        "    def __init__(self):\n",
        "        super(reweight, self).__init__()\n",
        "        self.mlp = Mlp(6,10,3)\n",
        "\n",
        "\n",
        "    def forward(self,x1,x2,x3):\n",
        "        b,c,h,w=x1.shape\n",
        "        x1_f = x1.reshape(b, -1)\n",
        "        x2_f = x2.reshape(b, -1)\n",
        "        x3_f = x3.reshape(b, -1)\n",
        "        x1_in = torch.cat((x1_f.max(1)[0].reshape(b, -1),\n",
        "                           x1_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        x2_in = torch.cat((x2_f.max(1)[0].reshape(b, -1),\n",
        "                           x2_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        x3_in = torch.cat((x3_f.max(1)[0].reshape(b, -1),\n",
        "                           x3_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        mlp_input=torch.cat((torch.cat((x1_in,x2_in),dim=1),x3_in),dim=1)\n",
        "        weight = self.mlp(mlp_input)\n",
        "        # weight = self.soft(weight)\n",
        "        weight = torch.sigmoid_(weight)\n",
        "\n",
        "        out = (weight[:, 0]).reshape(b, 1, 1, 1) * x1 + (weight[:, 1]).reshape(b, 1, 1, 1) * x2 + (\n",
        "        weight[:, 2]).reshape(b, 1, 1, 1) * x3\n",
        "\n",
        "        return out\n",
        "\n",
        "class TripletAttention(nn.Module):\n",
        "    def __init__(\n",
        "        self,\n",
        "        gate_channels,\n",
        "        reduction_ratio=16,\n",
        "        pool_types=[\"avg\", \"max\"],\n",
        "        no_spatial=False,\n",
        "    ):\n",
        "        super(TripletAttention, self).__init__()\n",
        "        self.ChannelGateH = SpatialGate()\n",
        "        self.ChannelGateW = SpatialGate()\n",
        "        self.no_spatial = no_spatial\n",
        "        if not no_spatial:\n",
        "            self.SpatialGate = SpatialGate()\n",
        "            self.re = reweight()\n",
        "\n",
        "\n",
        "\n",
        "    def forward(self, x):\n",
        "        x_perm1 = x.permute(0, 2, 1, 3).contiguous()\n",
        "        x_out1 = self.ChannelGateH(x_perm1)\n",
        "        x_out11 = x_out1.permute(0, 2, 1, 3).contiguous()\n",
        "        x_perm2 = x.permute(0, 3, 2, 1).contiguous()\n",
        "        x_out2 = self.ChannelGateW(x_perm2)\n",
        "        x_out21 = x_out2.permute(0, 3, 2, 1).contiguous()\n",
        "        if not self.no_spatial:\n",
        "            x_out = self.SpatialGate(x)\n",
        "            # x_out = (1 / 3) * (x_out + x_out11 + x_out21)\n",
        "            x_out = self.re(x_out,x_out11,x_out21)\n",
        "        else:\n",
        "            x_out = (1 / 2) * (x_out11 + x_out21)\n",
        "        return x_out\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 12,
      "metadata": {
        "id": "1mY2iwmCkcpA"
      },
      "outputs": [],
      "source": [
        "\n",
        "import math\n",
        "\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "import torch.nn.functional as F\n",
        "from torch.nn import init\n",
        "\n",
        "\n",
        "def conv3x3(in_planes, out_planes, stride=1):\n",
        "    \"3x3 convolution with padding\"\n",
        "    return nn.Conv2d(\n",
        "        in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
        "    )\n",
        "\n",
        "\n",
        "class BasicBlock(nn.Module):\n",
        "    expansion = 1\n",
        "\n",
        "    def __init__(\n",
        "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
        "    ):\n",
        "        super(BasicBlock, self).__init__()\n",
        "        self.conv1 = conv3x3(inplanes, planes, stride)\n",
        "        self.bn1 = nn.BatchNorm2d(planes)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "        self.conv2 = conv3x3(planes, planes)\n",
        "        self.bn2 = nn.BatchNorm2d(planes)\n",
        "        self.downsample = downsample\n",
        "        self.stride = stride\n",
        "\n",
        "        if use_triplet_attention:\n",
        "            self.triplet_attention = TripletAttention(planes, 16)\n",
        "        else:\n",
        "            self.triplet_attention = None\n",
        "\n",
        "    def forward(self, x):\n",
        "        residual = x\n",
        "\n",
        "        out = self.conv1(x)\n",
        "        out = self.bn1(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv2(out)\n",
        "        out = self.bn2(out)\n",
        "\n",
        "        if self.downsample is not None:\n",
        "            residual = self.downsample(x)\n",
        "\n",
        "        if not self.triplet_attention is None:\n",
        "            out = self.triplet_attention(out)\n",
        "\n",
        "        out += residual\n",
        "        out = self.relu(out)\n",
        "\n",
        "        return out\n",
        "\n",
        "\n",
        "class Bottleneck(nn.Module):\n",
        "    expansion = 4\n",
        "\n",
        "    def __init__(\n",
        "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
        "    ):\n",
        "        super(Bottleneck, self).__init__()\n",
        "        self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False)\n",
        "        self.bn1 = nn.BatchNorm2d(planes)\n",
        "        self.conv2 = nn.Conv2d(\n",
        "            planes, planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
        "        )\n",
        "        self.bn2 = nn.BatchNorm2d(planes)\n",
        "        self.conv3 = nn.Conv2d(planes, planes * 4, kernel_size=1, bias=False)\n",
        "        self.bn3 = nn.BatchNorm2d(planes * 4)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "        self.downsample = downsample\n",
        "        self.stride = stride\n",
        "\n",
        "        if use_triplet_attention:\n",
        "            self.triplet_attention = TripletAttention(planes * 4, 16)\n",
        "        else:\n",
        "            self.triplet_attention = None\n",
        "\n",
        "    def forward(self, x):\n",
        "        residual = x\n",
        "\n",
        "        out = self.conv1(x)\n",
        "        out = self.bn1(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv2(out)\n",
        "        out = self.bn2(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv3(out)\n",
        "        out = self.bn3(out)\n",
        "\n",
        "        if self.downsample is not None:\n",
        "            residual = self.downsample(x)\n",
        "\n",
        "        if not self.triplet_attention is None:\n",
        "            out = self.triplet_attention(out)\n",
        "\n",
        "        out += residual\n",
        "        out = self.relu(out)\n",
        "\n",
        "        return out\n",
        "\n",
        "\n",
        "class ResNet(nn.Module):\n",
        "    def __init__(self, block, layers, network_type, num_classes, att_type=None):\n",
        "        self.inplanes = 64\n",
        "        super(ResNet, self).__init__()\n",
        "        self.network_type = network_type\n",
        "        # different model config between ImageNet and CIFAR\n",
        "        if network_type == \"ImageNet\":\n",
        "            self.conv1 = nn.Conv2d(\n",
        "                3, 64, kernel_size=7, stride=2, padding=3, bias=False\n",
        "            )\n",
        "            self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)\n",
        "            self.avgpool = nn.AvgPool2d(7)\n",
        "        else:\n",
        "            self.conv1 = nn.Conv2d(\n",
        "                3, 64, kernel_size=3, stride=1, padding=1, bias=False\n",
        "            )\n",
        "\n",
        "        self.bn1 = nn.BatchNorm2d(64)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "\n",
        "        self.layer1 = self._make_layer(block, 64, layers[0], att_type=att_type)\n",
        "        self.layer2 = self._make_layer(\n",
        "            block, 128, layers[1], stride=2, att_type=att_type\n",
        "        )\n",
        "        self.layer3 = self._make_layer(\n",
        "            block, 256, layers[2], stride=2, att_type=att_type\n",
        "        )\n",
        "        self.layer4 = self._make_layer(\n",
        "            block, 512, layers[3], stride=2, att_type=att_type\n",
        "        )\n",
        "\n",
        "        self.fc = nn.Linear(512 * block.expansion, num_classes)\n",
        "\n",
        "        init.kaiming_normal_(self.fc.weight)\n",
        "        for key in self.state_dict():\n",
        "            if key.split(\".\")[-1] == \"weight\":\n",
        "                if \"conv\" in key:\n",
        "                    init.kaiming_normal_(self.state_dict()[key], mode=\"fan_out\")\n",
        "                if \"bn\" in key:\n",
        "                    if \"SpatialGate\" in key:\n",
        "                        self.state_dict()[key][...] = 0\n",
        "                    else:\n",
        "                        self.state_dict()[key][...] = 1\n",
        "            elif key.split(\".\")[-1] == \"bias\":\n",
        "                self.state_dict()[key][...] = 0\n",
        "\n",
        "    def _make_layer(self, block, planes, blocks, stride=1, att_type=None):\n",
        "        downsample = None\n",
        "        if stride != 1 or self.inplanes != planes * block.expansion:\n",
        "            downsample = nn.Sequential(\n",
        "                nn.Conv2d(\n",
        "                    self.inplanes,\n",
        "                    planes * block.expansion,\n",
        "                    kernel_size=1,\n",
        "                    stride=stride,\n",
        "                    bias=False,\n",
        "                ),\n",
        "                nn.BatchNorm2d(planes * block.expansion),\n",
        "            )\n",
        "\n",
        "        layers = []\n",
        "        layers.append(\n",
        "            block(\n",
        "                self.inplanes,\n",
        "                planes,\n",
        "                stride,\n",
        "                downsample,\n",
        "                use_triplet_attention=att_type == \"TripletAttention\",\n",
        "            )\n",
        "        )\n",
        "        self.inplanes = planes * block.expansion\n",
        "        for i in range(1, blocks):\n",
        "            layers.append(\n",
        "                block(\n",
        "                    self.inplanes,\n",
        "                    planes,\n",
        "                    use_triplet_attention=att_type == \"TripletAttention\",\n",
        "                )\n",
        "            )\n",
        "\n",
        "        return nn.Sequential(*layers)\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.conv1(x)\n",
        "        x = self.bn1(x)\n",
        "        x = self.relu(x)\n",
        "        if self.network_type == \"ImageNet\":\n",
        "            x = self.maxpool(x)\n",
        "\n",
        "        x = self.layer1(x)\n",
        "        x = self.layer2(x)\n",
        "        x = self.layer3(x)\n",
        "        x = self.layer4(x)\n",
        "\n",
        "        if self.network_type == \"ImageNet\":\n",
        "            x = self.avgpool(x)\n",
        "        else:\n",
        "            x = F.avg_pool2d(x, 4)\n",
        "        x = x.view(x.size(0), -1)\n",
        "        x = self.fc(x)\n",
        "        return x\n",
        "\n",
        "\n",
        "def ResidualNet(network_type, depth, num_classes, att_type):\n",
        "\n",
        "    assert network_type in [\n",
        "        \"ImageNet\",\n",
        "        \"CIFAR10\",\n",
        "        \"CIFAR100\",\n",
        "    ], \"network type should be ImageNet or CIFAR10 / CIFAR100\"\n",
        "    assert depth in [18, 34, 50, 101], \"network depth should be 18, 34, 50 or 101\"\n",
        "\n",
        "    if depth == 18:\n",
        "        model = ResNet(BasicBlock, [2, 2, 2, 2], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 34:\n",
        "        model = ResNet(BasicBlock, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 50:\n",
        "        model = ResNet(Bottleneck, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 101:\n",
        "        model = ResNet(Bottleneck, [3, 4, 23, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    return model\n",
        "\n",
        "# if __name__==\"__main__\":\n",
        "#     net=ResidualNet(\"CIFAR100\",34,10,\"TripletAttention\")\n",
        "#     print(net)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 13,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "otA9CIgdnXfW",
        "outputId": "53427e7d-e446-4a3b-c5ec-5889a9000f76"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "ResNet(\n",
            "  (conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "  (relu): ReLU(inplace=True)\n",
            "  (layer1): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer2): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer3): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer4): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (re): reweight(\n",
            "          (mlp): Mlp(\n",
            "            (fc1): Linear(in_features=6, out_features=10, bias=True)\n",
            "            (act): GELU(approximate='none')\n",
            "            (fc2): Linear(in_features=10, out_features=3, bias=True)\n",
            "            (drop): Dropout(p=0.0, inplace=False)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (fc): Linear(in_features=512, out_features=100, bias=True)\n",
            ")\n"
          ]
        }
      ],
      "source": [
        "device=\"cuda\"\n",
        "net=ResidualNet(\"CIFAR100\",18,100,\"TripletAttention\").to(device)\n",
        "# net=ResidualNet(\"CIFAR100\",18,100,None).to(device)\n",
        "print(net)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "35VI01P_kqal",
        "outputId": "79df122c-4a29-404a-f2b9-cc117c1b0506"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "6250\n"
          ]
        }
      ],
      "source": [
        "import torch.optim as optim\n",
        "\n",
        "criterion = nn.CrossEntropyLoss()\n",
        "optimizer = torch.optim.Adam(net.parameters(), lr=0.0005)\n",
        "print(len(train_loader))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 14,
      "metadata": {
        "id": "ck0do7nrmNTQ"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 15,
      "metadata": {
        "id": "xKlx2mCxlE02"
      },
      "outputs": [],
      "source": [
        "from tqdm import tqdm\n",
        "def train(epoch):\n",
        "    net.train()\n",
        "    # Loop over each batch from the training set\n",
        "    train_tqdm = tqdm(train_loader, desc=\"Epoch \" + str(epoch))\n",
        "    for batch_idx, (data, target) in enumerate(train_tqdm):\n",
        "        # Copy data to GPU if needed\n",
        "        data = data.to(device)\n",
        "        target = target.to(device)\n",
        "        # Zero gradient buffers\n",
        "        optimizer.zero_grad()\n",
        "        # Pass data through the network\n",
        "        output = net(data)\n",
        "        # Calculate loss\n",
        "        loss = criterion(output, target)\n",
        "        # Backpropagate\n",
        "        loss.backward()\n",
        "        # Update weights\n",
        "        optimizer.step()  # w - alpha * dL / dw\n",
        "        train_tqdm.set_postfix({\"loss\": \"%.3g\" % loss.item()})\n",
        "\n",
        "def validate(lossv,top1AccuracyList,top5AccuracyList):\n",
        "    net.eval()\n",
        "    val_loss = 0\n",
        "    top1Correct = 0\n",
        "    top5Correct = 0\n",
        "    for index,(data, target) in enumerate(test_loader):\n",
        "        data = data.to(device)\n",
        "        labels = target.to(device)\n",
        "        outputs = net(data)\n",
        "        val_loss += criterion(outputs, labels).data.item()\n",
        "        _, top1Predicted = torch.max(outputs.data, 1)\n",
        "        top5Predicted = torch.topk(outputs.data, k=5, dim=1, largest=True)[1]\n",
        "        top1Correct += (top1Predicted == labels).cpu().sum().item()\n",
        "        label_resize = labels.view(-1, 1).expand_as(top5Predicted)\n",
        "        top5Correct += torch.eq(top5Predicted, label_resize).view(-1).cpu().sum().float().item()\n",
        "\n",
        "    val_loss /= len(test_loader)\n",
        "    lossv.append(val_loss)\n",
        "\n",
        "    top1Acc=100*top1Correct / len(test_loader.dataset)\n",
        "    top5Acc=100*top5Correct / len(test_loader.dataset)\n",
        "    top1AccuracyList.append(top1Acc)\n",
        "    top5AccuracyList.append(top5Acc)\n",
        "    \n",
        "    print('\\nValidation set: Average loss: {:.4f}, Top1Accuracy: {}/{} ({:.0f}%) Top5Accuracy: {}/{} ({:.0f}%)\\n'.format(\n",
        "        val_loss, top1Correct, len(test_loader.dataset), top1Acc,top5Correct, len(test_loader.dataset), top5Acc))\n",
        "#     accuracy = 100. * correct.to(torch.float32) / len(testloader.dataset)\n",
        "#     accv.append(accuracy)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pTWz8B3Dl9gu",
        "outputId": "9f95c367-e161-4ded-e724-ef71fe20f0ee"
      },
      "outputs": [
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 0: 100%|██████████| 6250/6250 [05:16<00:00, 19.76it/s, loss=2.74]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.3864, Top1Accuracy: 3762/10000 (38%) Top5Accuracy: 6973.0/10000 (70%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 1: 100%|██████████| 6250/6250 [05:19<00:00, 19.57it/s, loss=1.52]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.8746, Top1Accuracy: 4902/10000 (49%) Top5Accuracy: 7977.0/10000 (80%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 2: 100%|██████████| 6250/6250 [05:19<00:00, 19.54it/s, loss=1.7]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.6751, Top1Accuracy: 5378/10000 (54%) Top5Accuracy: 8278.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 3: 100%|██████████| 6250/6250 [05:15<00:00, 19.78it/s, loss=1.06]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.6094, Top1Accuracy: 5667/10000 (57%) Top5Accuracy: 8464.0/10000 (85%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 4: 100%|██████████| 6250/6250 [05:17<00:00, 19.68it/s, loss=0.996]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.6500, Top1Accuracy: 5672/10000 (57%) Top5Accuracy: 8400.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 5: 100%|██████████| 6250/6250 [05:15<00:00, 19.83it/s, loss=0.589]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.7965, Top1Accuracy: 5732/10000 (57%) Top5Accuracy: 8378.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 6: 100%|██████████| 6250/6250 [05:18<00:00, 19.62it/s, loss=0.349]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 1.9299, Top1Accuracy: 5689/10000 (57%) Top5Accuracy: 8389.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 7: 100%|██████████| 6250/6250 [05:23<00:00, 19.34it/s, loss=0.0695]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.0148, Top1Accuracy: 5737/10000 (57%) Top5Accuracy: 8303.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 8: 100%|██████████| 6250/6250 [05:22<00:00, 19.39it/s, loss=0.375]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.1467, Top1Accuracy: 5642/10000 (56%) Top5Accuracy: 8294.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 9: 100%|██████████| 6250/6250 [05:17<00:00, 19.65it/s, loss=0.349]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.2381, Top1Accuracy: 5678/10000 (57%) Top5Accuracy: 8310.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 10: 100%|██████████| 6250/6250 [05:13<00:00, 19.93it/s, loss=0.0988]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.3516, Top1Accuracy: 5595/10000 (56%) Top5Accuracy: 8219.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 11: 100%|██████████| 6250/6250 [05:13<00:00, 19.92it/s, loss=0.406]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.3815, Top1Accuracy: 5629/10000 (56%) Top5Accuracy: 8207.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 12: 100%|██████████| 6250/6250 [05:23<00:00, 19.35it/s, loss=0.052]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.3681, Top1Accuracy: 5630/10000 (56%) Top5Accuracy: 8239.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 13: 100%|██████████| 6250/6250 [05:39<00:00, 18.41it/s, loss=0.00293]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4553, Top1Accuracy: 5637/10000 (56%) Top5Accuracy: 8269.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 14: 100%|██████████| 6250/6250 [05:23<00:00, 19.34it/s, loss=0.107]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4815, Top1Accuracy: 5630/10000 (56%) Top5Accuracy: 8297.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 15: 100%|██████████| 6250/6250 [05:25<00:00, 19.22it/s, loss=0.213]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4579, Top1Accuracy: 5678/10000 (57%) Top5Accuracy: 8237.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 16: 100%|██████████| 6250/6250 [05:26<00:00, 19.13it/s, loss=0.00501]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6150, Top1Accuracy: 5611/10000 (56%) Top5Accuracy: 8206.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 17: 100%|██████████| 6250/6250 [05:26<00:00, 19.16it/s, loss=0.00951]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6324, Top1Accuracy: 5584/10000 (56%) Top5Accuracy: 8172.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 18: 100%|██████████| 6250/6250 [05:24<00:00, 19.27it/s, loss=9.11e-05]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6003, Top1Accuracy: 5601/10000 (56%) Top5Accuracy: 8193.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 19: 100%|██████████| 6250/6250 [05:29<00:00, 18.97it/s, loss=0.00592]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6498, Top1Accuracy: 5608/10000 (56%) Top5Accuracy: 8204.0/10000 (82%)\n",
            "\n",
            "Finished Training\n"
          ]
        }
      ],
      "source": [
        "lossv = []\n",
        "top1AccuracyList = []   # top1准确率列表\n",
        "top5AccuracyList = []   # top5准确率列表\n",
        "max_epoch = 20\n",
        "for epoch in range(max_epoch):  # loop over the dataset multiple times\n",
        "    train(epoch)\n",
        "    with torch.no_grad():\n",
        "        validate(lossv,top1AccuracyList,top5AccuracyList)\n",
        "        \n",
        "print('Finished Training')"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# New Section"
      ],
      "metadata": {
        "id": "DW_Ya2WyDhrj"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 16,
      "metadata": {
        "id": "5qEPmaZO1NU3"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 17,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 925
        },
        "id": "Z1-D3LkhvzDq",
        "outputId": "bccefc2f-1fec-4cb5-df9b-b04db31bf723"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'validation top5 accuracy')"
            ]
          },
          "metadata": {},
          "execution_count": 17
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbcAAAEpCAYAAAAQ+2zYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCh0lEQVR4nO3deXhTZf428Dvpku5pS1u6UgoIZS3IWnYF2RQpKgLyWhlAUIuyuDA4MyKjMxW30VEH0R+Lisg2LA4gUIEWgSJrgbKUrRt0LzTpmqbJ8/5RGil0S2lymvT+XFeui5yc5ZtDkrvPWZ5HJoQQICIisiJyqQsgIiJqagw3IiKyOgw3IiKyOgw3IiKyOgw3IiKyOgw3IiKyOgw3IiKyOgw3IiKyOgw3IiKyOgw3onusWbMGMpkMKSkphmnDhw/H8OHD6102NjYWMpkMsbGxTVqTTCbDu+++26TrbIh3330XMpnM7NslelAMN6JmYteuXZIEGJE1spW6ACJLsHfvXpNvY9euXfjqq69qDLjS0lLY2vLrStRQ/LYQNYC9vb2k23dwcJB0+0SWhoclyaJt3rwZMpkMcXFx9722YsUKyGQyJCYmAgDOnj2L6dOno127dnBwcICvry9mzJiB/Pz8erdT0zm3GzduICIiAs7OzvDx8cGCBQug0WjuW/a3337DpEmT0KZNGygUCgQFBWHBggUoLS01zDN9+nR89dVXACrPr1U9qtR0zu306dMYO3Ys3Nzc4OLighEjRuDo0aPV5qk6f3j48GEsXLgQ3t7ecHZ2xsSJE5Gbm1vv+65JRUUF3nvvPbRv3x4KhQJt27bF22+/fd97P3HiBEaPHg0vLy84OjoiJCQEM2bMqDbP+vXr0bt3b7i6usLNzQ3du3fH559/3qi6iO7GlhtZtMcffxwuLi7YuHEjhg0bVu21DRs2oGvXrujWrRsAICYmBtevX8ef/vQn+Pr64vz58/jmm29w/vx5HD161KgLJ0pLSzFixAikpaXhtddeg7+/P3744Qfs37//vnk3bdqEkpISvPzyy2jVqhWOHTuGL774Ajdu3MCmTZsAAHPmzEFGRgZiYmLwww8/1Lv98+fPY8iQIXBzc8Nbb70FOzs7rFixAsOHD0dcXBz69+9fbf5XX30VHh4eWLJkCVJSUvDZZ59h7ty52LBhQ4Pfc5VZs2bhu+++wzPPPIPXX38dv//+O6Kjo3Hx4kVs3boVAJCTk4NRo0bB29sbf/7zn+Hu7o6UlBRs2bLFsJ6YmBhMnToVI0aMwLJlywAAFy9exOHDhzFv3jyj6yKqRhBZuKlTpwofHx9RUVFhmJaZmSnkcrn4+9//bphWUlJy37I//fSTACAOHjxomLZ69WoBQCQnJxumDRs2TAwbNszw/LPPPhMAxMaNGw3TiouLRYcOHQQAceDAgTq3Gx0dLWQymUhNTTVMi4qKErV9JQGIJUuWGJ5HREQIe3t7ce3aNcO0jIwM4erqKoYOHXrfexk5cqTQ6/WG6QsWLBA2NjaioKCgxu1VWbJkSbWaEhISBAAxa9asavO98cYbAoDYv3+/EEKIrVu3CgDi+PHjta573rx5ws3Nrdr/G1FT4WFJsniTJ09GTk5OtcvvN2/eDL1ej8mTJxumOTo6Gv5dVlaGvLw8DBgwAABw6tQpo7a5a9cu+Pn54ZlnnjFMc3JywuzZs++b9+7tFhcXIy8vDwMHDoQQAqdPnzZquwCg0+mwd+9eREREoF27dobpfn5+eO6553Do0CGo1epqy8yePbtay3TIkCHQ6XRITU01atu7du0CACxcuLDa9Ndffx0AsHPnTgCAu7s7AGDHjh3QarU1rsvd3R3FxcWIiYkxqgaihmC4kcUbM2YMlEpltUNsGzZsQM+ePdGxY0fDtFu3bmHevHlo3bo1HB0d4e3tjZCQEACASqUyapupqano0KHDfYcyO3XqdN+8aWlpmD59Ojw9PeHi4gJvb2/DIVRjtwsAubm5KCkpqXFbnTt3hl6vR3p6erXpbdq0qfbcw8MDAHD79m2jtp2amgq5XI4OHTpUm+7r6wt3d3dDWA4bNgxPP/00li5dCi8vL0yYMAGrV6+udl7ulVdeQceOHTF27FgEBgZixowZ2L17t1H1ENWG4UYWT6FQICIiAlu3bkVFRQVu3ryJw4cPV2u1AcCzzz6Lb7/9Fi+99BK2bNmCvXv3Gn5M9Xq9SWrT6XR47LHHsHPnTixatAjbtm1DTEwM1qxZY9Lt3svGxqbG6UKIRq2vvvOTMpkMmzdvRnx8PObOnYubN29ixowZ6N27N4qKigAAPj4+SEhIwM8//4wnn3wSBw4cwNixY/HCCy80qiaiuzHcyCpMnjwZeXl52LdvHzZt2gQhRLVwu337Nvbt24c///nPWLp0KSZOnIjHHnus2mE9YwQHB+PatWv3hUNSUlK15+fOncPly5fxySefYNGiRZgwYQJGjhwJf3//+9bZ0AtavL294eTkdN+2AODSpUuQy+UICgoy4t00XHBwMPR6Pa5cuVJtenZ2NgoKChAcHFxt+oABA/CPf/wDJ06cwI8//ojz589j/fr1htft7e0xfvx4/Oc//8G1a9cwZ84cfP/997h69apJ6qeWg+FGVmHkyJHw9PTEhg0bsGHDBvTr189wyBH4o+Vybxh99tlnjdreuHHjkJGRgc2bNxumlZSU4Jtvvqk2X03bFULUeLm7s7MzAKCgoKDObdvY2GDUqFHYvn17tS7CsrOzsW7dOgwePBhubm7GvqUGGTduHID799unn34KoPLqVaDyj4l793XPnj0BwHBo8t5bMORyOXr06FFtHqLG4q0AZBXs7Ozw1FNPYf369SguLsbHH39c7XU3NzcMHToUH374IbRaLQICArB3714kJyc3ansvvvgivvzyS0RGRuLkyZPw8/PDDz/8ACcnp2rzhYaGon379njjjTdw8+ZNuLm54b///W+N57p69+4NAHjttdcwevRo2NjYYMqUKTVu//3330dMTAwGDx6MV155Bba2tlixYgU0Gg0+/PDDRr2nhggLC8MLL7yAb775BgUFBRg2bBiOHTuG7777DhEREXjkkUcAAN999x3+85//YOLEiWjfvj0KCwvx7bffws3NzRCQs2bNwq1bt/Doo48iMDAQqamp+OKLL9CzZ0907tzZZO+BWgjpLtQkaloxMTECgJDJZCI9Pf2+12/cuCEmTpwo3N3dhVKpFJMmTRIZGRn3XWbfkFsBhBAiNTVVPPnkk8LJyUl4eXmJefPmid27d993K8CFCxfEyJEjhYuLi/Dy8hIvvviiOHPmjAAgVq9ebZivoqJCvPrqq8Lb21vIZLJql+DfW6MQQpw6dUqMHj1auLi4CCcnJ/HII4+II0eOVJun6r3ce0n+gQMH7quzJvfeCiCEEFqtVixdulSEhIQIOzs7ERQUJBYvXizKysqq1TZ16lTRpk0boVAohI+Pj3jiiSfEiRMnDPNs3rxZjBo1Svj4+Ah7e3vRpk0bMWfOHJGZmVlnTUQNIROikWeUiYiImimecyMiIqvDcCMiIqvDcCMiIqvDcCMiIqvDcCMiIqvDcCMiIqtjETdx6/V6ZGRkwNXV1agxt4iIyHoIIVBYWAh/f3/I5XW3zSwi3DIyMkzWVx4REVmW9PR0BAYG1jmPRYSbq6srgMo3ZKo+84iIqHlTq9UICgoyZEJdLCLcqg5Furm5MdyIiFq4hpye4gUlRERkdRhuRERkdRhuRERkdRhuRERkdRhuRERkdRhuRERkdRhuRERkUkIIxCbl4OyNArNt0yLucyMiIsuUkF6AD365iKPXb6FPsAc2vRRulm4UGW5ERNTkrucW4eO9Sdh1LgsAYG8rx8PBHtDqBOxtGW5ERGRBctRl+HzfFaw/ng6dXkAmA55+OBALHuuIAHdHs9XBcCMisnDlFXpcySnE+Qw1LmSocT2vGJ39XDEhLACd/cwzmkphmRbfHLyO//stGaVaHQBgRKgP3hzTCaG+5u82keFGRGRB1GVaXMxQ40Km2hBmV3IKodWJavMdvJyLFXHX8ZCPC54M88eTPf0R3Mq5yevRVOiw9mgavtx/BbdLtACAXm3c8ecxoejfrlWTb6+hZEIIUf9s0lKr1VAqlVCpVOw4mYhaBCEEstUanM9Q4cJdYZZ2q6TG+d0cbNHVX4ku/m5o28oJh6/mY39SDsor9IZ5ega548kwfzzRww8+bg4PVJ9eL7D9zE18svcybtwuBQC083bGW6NDMbpra5O0Fo3JAqPCLTo6Glu2bMGlS5fg6OiIgQMHYtmyZejUqVOdyxUUFOAvf/kLtmzZglu3biE4OBifffYZxo0b1+RviIjIEqlKtYhNyjEE2YUMNfKLy2ucN8DdEV383dDFzw1d/d3Qxd8NAe6O9wWKukyLPYlZ+PlMBg5fzYP+zq+9XAaEt2+FCWEBGN3NF0pHuwbXKYRA3OVcLNudhIuZagCAj6sCCx7riEm9A2FrY7o7zEwWbmPGjMGUKVPQt29fVFRU4O2330ZiYiIuXLgAZ+eam7vl5eUYNGgQfHx88PbbbyMgIACpqalwd3dHWFhYk78hIiJLU1JegbGf/4bU/OqtMhu5DB28XdDF/06I+VUGmbuTvdHbyC3UYOfZDGw/k4HTaQWG6fY2cgzv5I0JPQMworMPHOxsal3HmfQCfPDLJcRfzwcAuCps8dLw9pgxKASO9rUv11RMFm73ys3NhY+PD+Li4jB06NAa5/n666/x0Ucf4dKlS7Cza/hfB3djuBGRNft4TxK+PHAVXi72GNvNzxBmHVu71hk2jZWWX4L/nc3A9oSbuJxdZJjubG+D0V198WRPfwzq4AW7O62w+y7rt5EjMjwYUY90gIez8UHbWGYLt6tXr+Khhx7CuXPn0K1btxrnGTduHDw9PeHk5ITt27fD29sbzz33HBYtWgQbm4b9pzHciMhapeWXYOS/4lBeoceK53tjdFdfs27/UpYaPydkYHtCBm4WlBqmezrbY1x3X+gFsOGuy/qf6hWIBY89hEAPJ7PWCRiXBY2+WlKv12P+/PkYNGhQrcEGANevX8f+/fsxbdo07Nq1C1evXsUrr7wCrVaLJUuW1LiMRqOBRqMxPFer1Y0tk4ioWXt/5wWUV+gxuIMXRnVpbfbth/q6IXSMG94c3Qmn0grwc8JN7Dibifzicqw9mmaY79FQH7wl0WX9jdHoltvLL7+MX375BYcOHUJgYGCt83Xs2BFlZWVITk42tNQ+/fRTfPTRR8jMzKxxmXfffRdLly69bzpbbkRkTX67kovnVx6DjVyG3fOG4KHWrlKXBACo0Olx5Fo+fj6TgaKyCkwf1BYDJLysv4rJW25z587Fjh07cPDgwTqDDQD8/PxgZ2dX7RBk586dkZWVhfLyctjb33+8dvHixVi4cKHhuVqtRlBQUGNKJSJqlrQ6PZb+7wIA4IXwts0m2ADA1kaOoR29MbSjt9SlNJpR12wKITB37lxs3boV+/fvR0hISL3LDBo0CFevXoVe/8e9FpcvX4afn1+NwQYACoUCbm5u1R5ERNbk+/hUXM0pQitne8wb+ZDU5Vgdo8ItKioKa9euxbp16+Dq6oqsrCxkZWWhtPSPk5CRkZFYvHix4fnLL7+MW7duYd68ebh8+TJ27tyJf/7zn4iKimq6d0FEZEHyijT4LOYyAODN0Z2Mus+MGsaow5LLly8HAAwfPrza9NWrV2P69OkAgLS0NMjlf2RmUFAQ9uzZgwULFqBHjx4ICAjAvHnzsGjRogernIjIQn28JwmFmgp0D1BiUh+ecjEFdr9FRGRGZ28UYMJXhyEE8N+Xw9E72FPqkiyGMVnAkbiJiMxECIF3fz4PIYCJvQIYbCbEcCMiMpNtCTdxKq0ATvY2+PPYUKnLsWoMNyIiMyjSVCB61yUAwNxHO6D1A/bKT3VjuBERmcFXB64ip1CD4FZOmDm4/tuo6MEw3IiITCw5rxgrf0sGALzzRBcobE3fg35Lx3AjIjKx93dcQLlOj2EdvfFoqI/U5bQIDDciIhM6kJSDfZdyYCuX4Z3xXUwyQjXdj+FGRGQi5RV6vHen/8gZg0PQ3ttF4opaDoYbEZGJfHckBdfziuHlosCrj3aQupwWheFGRGQCOYVl+HzfFQDAojGd4OrA/iPNieFGRGQCH+5OQpGmAmFB7nj64bqHBqOmx3AjImpiCekF2HzyBgDg3fFdIJfzIhJzY7gRETUhvV5gyc/nAQDP9A5ErzYeElfUMjHciIia0H9P3cCZ9AK4KGzx1phOUpfTYjHciIiaSGGZFst2JwEAXhvRAT6u7D9SKgw3IqIm8sX+q8gr0qCdlzOmD2T/kVIyaiRuIiJLp9cLXMxSo0In0NXfDbY2TfM3/rXcIqw+XNl/5N/Gd4G9LdsOUmK4EZHVU5VocfBKLmKTchF3ORd5RRoAgIvCFv1CPDGwfSuEt2+Fzr5ujbqyUQiBv//vArQ6gRGhPnikE/uPlBrDjYisjl4vcCFTjdikHMQm5eJU2m3oxR+vO9nbwFYug7qsAvsv5WD/pRwAgLuTHQaEtMLADq0wsH0rtPd2aVBfkPsv5SDuci7sbeT42xNdTPW2yAgMNyKyCqoSLX67mosDl6q3zqo85OOC4Z28MbyTD/q09YCtXI6LmWrEX8vHkWt5OJZ8CwUlWuw+n4Xd57MAAN6uCoS3qwy6ge29EOTpeF/YaSp0eG/HH/1HtvVyNs8bpjrJhBCi/tmkpVaroVQqoVKp4ObmJnU5RNQMNKR1NrC9Fx4J9cawjt4I9HCqc31anR7nbqoMYXci5TY0Ffpq8wS4OxoOYQ5s7wVfpQOWx17Dst2X4OOqwP43hsNFwTaDqRiTBQw3IrIYVa2zqnNnuYXVW2cdfFzwyF2tswcZFLRMq8PptALEX89H/LU8nE4rQIW++s9lOy9nZKnLUFKuw78mh2FiL3azZUrGZAH/xCAii/DtwetYtvtStYCpap1VHm6sv3VmDAc7G4TfaaXhsY4oKa/A8ZTbiL9WGXbnbqpwPa8YAPBwG3dE9Axosm3Tg2O4EVGzJoTApzGX8cX+qwAqW2fDO3rjkdAHb50Zw8neFsM6Vh7iBABVqRbHk2/hYqYaz/QJ5CCkzQzDjYiaLSEE3ttxEavu3D/21phOeGV48xgXTeloh5FdWmNkl9ZSl0I1YLgRUbOk0wv8Zes5rD+eDgBY+mRXvDCwrbRFkcVguBFRs6PV6bFw4xn870wG5DJg2dM9MKlPkNRlkQVhuBFRs1Km1WHuulP49WIObOUyfD6lFx7v4Sd1WWRhGG5E1GwUayow+4cTOHw1HwpbOb7+f73xSCi7siLjMdyIqFlQlWoxY81xnEy9DSd7G/zfC30wsL2X1GWRhTKq2+ro6Gj07dsXrq6u8PHxQUREBJKSkhq8/Pr16yGTyRAREWFsnURkxfKLNHju26M4mXobbg62WDurP4ONHohR4RYXF4eoqCgcPXoUMTEx0Gq1GDVqFIqLi+tdNiUlBW+88QaGDBnS6GKJyPpkq8sw+ZujOJ+hRitne6yfHY6H23hIXRZZOKMOS+7evbva8zVr1sDHxwcnT57E0KFDa11Op9Nh2rRpWLp0KX777TcUFBQ0qlgisi7pt0ow7f9+R9qtEvi6OeDHF/ujvbeL1GWRFXig0fRUKhUAwNPTs875/v73v8PHxwczZ85s0Ho1Gg3UanW1BxFZl6s5RZj0dTzSbpWgjacTNr0UzmCjJtPoC0r0ej3mz5+PQYMGoVu3brXOd+jQIaxcuRIJCQkNXnd0dDSWLl3a2NKIqJm7kKHG8yt/R35xOTr4uODHWf3R2s1B6rLIijS65RYVFYXExESsX7++1nkKCwvx/PPP49tvv4WXV8NPDi9evBgqlcrwSE9Pb2yZBnq9QFp+CfLvGeOJiMzrVNptTPkmHvnF5ejq74YNswcw2KjJNarlNnfuXOzYsQMHDx5EYGDtQzxcu3YNKSkpGD9+vGGaXl85PpKtrS2SkpLQvn37+5ZTKBRQKBSNKa1Wr60/jR1nM/G3J7pg5uCQJl03kbURQkBdVgE3B9sm7RD4yLU8zPruBErKdegd7IFV0/tC6WjXZOsnqmJUuAkh8Oqrr2Lr1q2IjY1FSEjdIREaGopz585Vm/bXv/4VhYWF+PzzzxEUZL7udKqO5V/K5Pk7opoIIZCQXoDdiVn4JTELabdK4GRvg7atnBHiVflo6+WMEC8nhHi5wMPJzqjgO3ApBy+tPQlNhR6DOrTCt5F94GTPW23JNIz6ZEVFRWHdunXYvn07XF1dkZVVORS7UqmEo6MjACAyMhIBAQGIjo6Gg4PDfefj3N3dAaDO83Sm0NnPFQBwKavQrNslas50eoETKbfwS2IW9pzPQqaqrNrrJeU6XMhU40INfxS6OdjeE3p//NvNoXprbOfZTMzfcBpancDIzj748rmH4WBnnqFqqGUyKtyWL18OABg+fHi16atXr8b06dMBAGlpaZDLH+giTJMI9a0ctfVydiEqdHrY2jS/GonMQavT4/frt7ArMRN7z2cj767z0M72Nngk1Adju/lhcAcv5BVrkJxbjJT8YiTnVT5S8oqRoSqDuqwCZ26ocOaG6r5teLnYo22ryqBzdbDFd0dSoBfA+DB/fPpsGOz4/SMTkwkhRP2zScuYocVro9cLdF2yB6VaHX5dOAwdfHjJMbUcmgodDl/Nwy/nshBzMRsFJVrDa24OthjZpTXGdvPDkIe8GtSiKi3XIfVWZdAl55UgOa8IKXklSM4vRm5hzRdtTe4ThH8+1R02cg7qSY1jTBa0mAPecrkMnXxdkZBegEtZaoYbWb3Sch3iLufgl8Qs7L+Yg0JNheE1T2d7jOrSGmO7+yG8XSvY2xrXknK0t0Gor5vhiMjdCsu0SM0vMbTyUvJL0CNQicjwYI5WTWbTYsINqDzvlpBegEuZhXiih9TVEDW9Ik0F9l/Kwe7ETBy4lItSrc7wmo+rAmO6+WJMN1/0a+tpskPzrg526BagRLcApUnWT9QQLSrcqv7KvJTFKybJ+lzNKcTkFUeRX1xumBbg7oix3XwxtrsvegV5QM5DgtRCtLBwq7xi8mImr5gk66Iq1eLF708iv7gcAe6OmNDTH2O7+aFbgBsPBVKL1MLCrbLldrOgFOoy7X2XKxNZIp1e4LWfTiM5rxgB7o7YPncQvFyathMEIkvToq7HVTrZwV9Z2c1PEu93Iyvx0Z4kxF3OhYOdHCue781gI0ILCzcACPW7c96NPZWQFfj5TAa+jrsGAFj2dA9exEF0R8sLN1/2VELWIfGmCm9tPgMAmDOsHSb0DJC4IqLmo8WFWyeGG1mB/CIN5vxwEmVaPYZ19MZbo0OlLomoWWlx4db5zmHJpKxC6PXNvnMWovtodXq88uMp3CwoRdtWTvj3lF7s9YPoHi0u3EK8nGFvI0eRpgI3C0qlLofIaO/vuIDfk2/B2d4G30b2gdKJV/0S3avFhZudjdzQ9dZFXlRCFmbD8TR8F58KAPhsSi881NpV4oqImqcWF24AEMrhb8gCnUy9jb9uSwQALHysIx7r0lriioiarxYZbp3ZDRdZmCxVGV5aexJancCYrr6Y+0gHqUsiatZaZLgZWm7shossQJlWhzlrTyK3UINOrV3xybNh7COSqB4tM9zutNyS84tRWq6rZ24i6Qgh8NdtiTiTXgClox2+iewNZ0WL6jWPqFFaZLh5uyrg5WIPISpH5iZqrtYcScHmkzcglwFfPfcwgls5S10SkUVokeEGcPgbav6OXM3D+zsvAgDeHtcZgx/ykrgiIsvRgsONw99Q85V+qwRR605BpxeY2CsAMweHSF0SkUVpueHmx5YbNU8l5RV48fsTuF2iRY9AJaKf6s4x2YiM1HLD7a4+JoVgN1zUPAgh8Oams7iUVQgvFwVWPN8bDnY2UpdFZHFabLh18HGBjVyGghItstUaqcshAgD8J/Yadp7LhJ2NDF//v4fhp3SUuiQii9Riw83BzgbtvCqvPLvIQ5PUDOy/lI2P9yYBAJY+2Q192npKXBGR5Wqx4QbcPXApLyohaV3NKcK8nxIgBDCtfxs817+N1CURWbSWHW6G825suZF01GVazP7hBAo1Fejb1gNLxneVuiQii9eiw60zu+EiiZWW6zDn+5O4nlsMP6UD/jOtN+xtW/TXkqhJtOhvUdWN3Ndyi1BeoZe4GmppSsorMGPNccRfz4ezvQ2+eb4PvF0VUpdFZBVadLj5KR3g6mCLCr3AtdwiqcuhFuTuYHNR2OL7mf3QPVApdVlEVqNFh5tMJuPwN2R2VcF29PotuChs8d2MfugdzCsjiZqSUeEWHR2Nvn37wtXVFT4+PoiIiEBSUlKdy3z77bcYMmQIPDw84OHhgZEjR+LYsWMPVHRT4vA3ZE7FmgpMX10ZbK53Wmy9gz2kLovI6hgVbnFxcYiKisLRo0cRExMDrVaLUaNGobi4uNZlYmNjMXXqVBw4cADx8fEICgrCqFGjcPPmzQcuvilUnXe7yFG5ycSKNRX40+rjOJb8R7A93IbBRmQKMvEAfU/l5ubCx8cHcXFxGDp0aIOW0el08PDwwJdffonIyMgGLaNWq6FUKqFSqeDm5tbYcmt0Ku02nvrPEfi4KnDsLyObdN1EVQzBlvJHsPVisBEZxZgseKBzbiqVCgDg6dnw8wUlJSXQarVGLWNKnVpXHpbMKdQgv4jdcFHTK9JUYPrqY5XB5mCLH2b1Z7ARmVijw02v12P+/PkYNGgQunXr1uDlFi1aBH9/f4wcWXsrSaPRQK1WV3uYirPCFsGtnAAASTw0SU2sSFOB6auO4XjKbbg62GLtzP7oGeQudVlEVq/R4RYVFYXExESsX7++wct88MEHWL9+PbZu3QoHB4da54uOjoZSqTQ8goKCGltmgxjGdmO4URMqLNPihVXHcCL1NtwcbPHjrP4IY7ARmUWjwm3u3LnYsWMHDhw4gMDAwAYt8/HHH+ODDz7A3r170aNHjzrnXbx4MVQqleGRnp7emDIbzDAqdyZvB6CmURVsJw3BNgA9At2lLouoxbA1ZmYhBF599VVs3boVsbGxCAlp2OjAH374If7xj39gz5496NOnT73zKxQKKBTm66nB0A0XW27UBKqC7VRaAZSOdlg7sz9v0CYyM6PCLSoqCuvWrcP27dvh6uqKrKwsAIBSqYSjY+W4U5GRkQgICEB0dDQAYNmyZXjnnXewbt06tG3b1rCMi4sLXFxcmvK9NFpVy+1ydiEqdHrY2rToe9vpAajvBNvpO8H246z+6BbAYCMyN6N+xZcvXw6VSoXhw4fDz8/P8NiwYYNhnrS0NGRmZlZbpry8HM8880y1ZT7++OOmexcPqI2nExztbKCp0CMlv0TqcshCqcu0iFxZGWzuTgw2IikZfViyPrGxsdWep6SkGLMJScjlMnTydUVCegEuZanRwad5tCjJcqhKtYhcdQxn0v8Itq7+DDYiqfD42x0c/oYaS1WqReTK3xlsRM2IUS03axbKDpSpEVQlWjy/6necvaGCh5Mdfpw1AF38m7YXHSIyHsPtDsO9bmy5UQOpSrT4fyt/x7mbKng62+PHWf3R2Y/BRtQc8LDkHVUtt5sFpVCXaSWuhpq7Ik1FtWBb9yKDjag5YbjdoXSyg7+ystcUdsNF9XnvfxeqBVvVH0dE1Dww3O4S6seeSqh+e89nYcOJdMhkwH+mPcxgI2qGGG536eTLnkqobrmFGizecg4AMHtIOwxo10riioioJgy3u4Qy3KgOQggs3nIW+cXlCPV1xcJRHaUuiYhqwXC7S9UFAUlZhdDrGz2GK1mp9cfT8evFHNjbyPGvyT2hsLWRuiQiqgXD7S4hXs6wt5GjSFOBmwWlUpdDzUhKXjHe23EBAPDG6I68MpKomWO43cXORm7oeusiLyqhOyp0eizcmICSch0GtPPErMHtpC6JiOrBcLtHKIe/oXt8HXcNp9IK4KqwxceTwiCXy6QuiYjqwXC7R2d2w0V3OXdDhc9+vQIAWDqhKwI9nCSuiIgaguF2j1B2oEx3lJbrMH/DaVToBcZ198XEXgFSl0REDcRwu0fVDbnJ+cUoLddJXA1JadnuS7iWWwwfVwX+EdEdMhkPRxJZCobbPbxdFfBysYcQlSNzU8t08HIu1hxJAQB8NCkMHs720hZEREZhuNWAw9+0bAUl5Xhz8xkAQGR4MIZ19Ja4IiIyFsOtBhz+puUSQuAv2xKRrdagnZczFo/tLHVJRNQIDLcaGDpQZsutxdmekIGdZzNhK5fhX5N7wtGevZAQWSKGWw3u7mNSCHbD1VLcLCjF37YnAgBeG/EQwoLcpS2IiBqN4VaDDj4usJHLUFCiRbZaI3U5ZAZ6vcAbG8+gsKwCPYPc8crw9lKXREQPgOFWAwc7G7TzcgYAXOShyRZh1eFkxF/Ph6OdDf41uSdsbfjVILJk/AbX4o+BS3lRibVLyirEh3uSAAB/faIzQu78YUNElovhVos/zrux5WbNNBU6zN+QgPIKPR4N9cFz/dpIXRIRNQGGWy06sxuuFuFfMVdwMVMNT2d7fPA0eyEhshYMt1p0unMj97XcIpRX6CWuhkzhWPItrDh4DQDwz4nd4ePqIHFFRNRUGG618Fc6wNXBFhV6gWu5RVKXQ02ssEyLBRsSIAQwqXcgxnTzlbokImpCDLdayGQyDn9jxZb+7wJuFpQi0MMR74zvInU5RNTEGG514PA31ml3YiY2n7wBmQz41+SecHWwk7okImpiRoVbdHQ0+vbtC1dXV/j4+CAiIgJJSUn1Lrdp0yaEhobCwcEB3bt3x65duxpdsDlVdaB8kaNyW42cwjIs3nIOAPDSsPbo29ZT4oqIyBSMCre4uDhERUXh6NGjiImJgVarxahRo1BcXFzrMkeOHMHUqVMxc+ZMnD59GhEREYiIiEBiYuIDF29qf7TceFjSGhSWaRH14yncLtGis58bFozsKHVJRGQiMvEAnSfm5ubCx8cHcXFxGDp0aI3zTJ48GcXFxdixY4dh2oABA9CzZ098/fXXDdqOWq2GUqmESqWCm5tbY8s1WrGmAl2X7AEAnPzrSLRyUZht29S08oo0mL76GBJvquGisMWWVwaiY2tXqcsiIiMYkwUPdM5NpVIBADw9az+0Ex8fj5EjR1abNnr0aMTHxz/Ips3CWWGL4FZOACp7sSDLdON2CZ79Oh6JN9Vo5WyP9bMHMNiIrFyjw02v12P+/PkYNGgQunXrVut8WVlZaN26dbVprVu3RlZWVq3LaDQaqNXqag+pGMZ2Y7hZpKs5hZj0dTyu5xUjwN0Rm14KR7cApdRlEZGJNTrcoqKikJiYiPXr1zdlPQAqL1xRKpWGR1BQUJNvo6EMo3LzvJvFSUgvwKSv45GpKsNDPi7Y/HI42nm7SF0WEZlBo8Jt7ty52LFjBw4cOIDAwMA65/X19UV2dna1adnZ2fD1rf2m2cWLF0OlUhke6enpjSmzSRi64WLLzaIcupKH5749itslWoQFuWPjnHD4KR2lLouIzMSocBNCYO7cudi6dSv279+PkJCQepcJDw/Hvn37qk2LiYlBeHh4rcsoFAq4ublVe0ilquV2ObsQFTp2w2UJfjmXiRlrjqOkXIfBHbywblZ/eDjbS10WEZmRUeEWFRWFtWvXYt26dXB1dUVWVhaysrJQWlpqmCcyMhKLFy82PJ83bx52796NTz75BJcuXcK7776LEydOYO7cuU33LkyojacTHO1soKnQIyW/ROpyqB4/HUtD1LpTKNfpMa67L1ZO7wNnha3UZRGRmRkVbsuXL4dKpcLw4cPh5+dneGzYsMEwT1paGjIzMw3PBw4ciHXr1uGbb75BWFgYNm/ejG3bttV5EUpzIpfL0InD31iE5bHXsHjLOegFMLVfEL6Y+jAUtjZSl0VEEjDqT9qG3BIXGxt737RJkyZh0qRJxmyqWens54qE9AJcyizEEz2krobuJYTAB79cwoqD1wEALw9vj7dGd+LwNUQtGI/XNEAoO1Butip0ery99Rw2nrgBAHh7XChmD20vcVVEJDWGWwMY7nVjB8rNSplWh3nrT2PP+WzIZcAHT/fAs32ku22EiJoPhlsDVLXcbhaUQl2mhRt7kZdckaYCs78/gSPX8mFvI8e/p/bimGxEZMAhbxpA6WQHf2XlKM3shkt6+UUaPPftURy5lg9nexusmdGXwUZE1TDcGshwxSR7KpHUzYJSTFoRj7M3VPB0tsdPswdgYHsvqcsiomaG4dZAoX5VF5Ww5SaVqzlFeGb5EVzPLYa/0gEb54SjR6C71GURUTPEc24NFOrLbrikdPZGAV5YdQy3S7Ro5+2MH2b2R4A7u9Miopox3Bqo852WW1JWIfR6Abmc91CZy8VMNaZ+cxTF5Tr0CFRi9fS+HFuPiOrEw5INFOLlDHsbOYo0FbhZUFr/AtQkNBU6LNiQgOJyHfqFeGLdiwMYbERUL4ZbA9nZyNHBp3K4lIu8qMRsPo25jEtZhfByscd/pj0MF/YTSUQNwHAzQiiHvzGr4ym38M2dLrX+ObE7vNhiI6IGYrgZoTO74TKbIk0FFm5MgBDApN6BGNWV97ERUcMx3IxgaLmxGy6T+8fOi0i/VYoAd0e8M76L1OUQkYVhuBmhqhuu5PxilJbrJK7Geu2/lI2fjqUBAD6eFAZXdndGREZiuBnB21UBLxd7CFE5Mjc1vVvF5Xhr8zkAwMzBIQhv30riiojIEjHcjMThb0xHCIG/bjuHvCINHvJxwZujO0ldEhFZKIabkTj8jen8fCYDu85lwVYuw6fP9oSDHUfRJqLGYbgZ6Y8+Jtlya0qZqlL8bVsiAOC1EQ+he6BS4oqIyJIx3Ix0dx+TQgiJq7EOer3Am5vOQl1WgbAgd7wynCNpE9GDYbgZqYOPCxztbFBQosXhq/lSl2MV1v6eikNX8+BgJ8enz4bB1oYfSyJ6MPwVMZKDnQ0m9w0CAKw4eE3iaizf9dwi/HPXRQDA4rGd0d7bReKKiMgaMNwaYebgENjIZfjtSh7OZ6ikLsdiVej0WLDxDMq0egzu4IXnBwRLXRIRWQmGWyMEeTrh8e5+AGDo+5CMtzz2Gs6kF8DVwRYfPtODwwgRUZNhuDXS7KHtAAA7zmYi/VaJxNVYnsSbKny+7woA4O8TusKfA48SURNiuDVStwAlBnfwgk4vsPJQstTlWJQybeUYbRV6gXHdfRHRM0DqkojIyjDcHsCcYZWttw3H03G7uFziaizHJ3uTcCWnCF4uCrwf0R0yGQ9HElHTYrg9gMEdvNDFzw2lWh3WHk2VuhyLcPR6Pv7vTkt32dPd4elsL3FFRGSNGG4PQCaTGVpva46koEzLkQLqUlimxesbz0AIYErfIIzo3FrqkojISjHcHtDj3f0Q4O6I/OJybD55Q+pymrX3dlzAzYJSBHk64q9PcIw2IjIdhtsDsrWR48UhIQCAb3+7Dp2eXXLVJOZCNjaeuAGZDPhkUk+4KGylLomIrJjR4Xbw4EGMHz8e/v7+kMlk2LZtW73L/PjjjwgLC4OTkxP8/PwwY8YM5OdbT9dVz/YNgruTHVLzS7DnfJbU5TQ7+UUaLN5yFgAwe0g79AvxlLgiIrJ2RodbcXExwsLC8NVXXzVo/sOHDyMyMhIzZ87E+fPnsWnTJhw7dgwvvvii0cU2V072toi807vGirhr7FD5LkIIvL31HPKKytGptSsWPNZR6pKIqAUw+tjQ2LFjMXbs2AbPHx8fj7Zt2+K1114DAISEhGDOnDlYtmyZsZtu1iIHtsWKg9dx5oYKvyffwoB2HEEaALacuok957NhZyPDp5PDOEYbEZmFyc+5hYeHIz09Hbt27YIQAtnZ2di8eTPGjRtX6zIajQZqtbrao7nzclFgUp9AAJWtNwJuFpTi3Z/PAwDmj+yIrv4co42IzMPk4TZo0CD8+OOPmDx5Muzt7eHr6wulUlnnYc3o6GgolUrDIygoyNRlNolZg9tBLgMOJOW2+MFMhRB4a/MZFGoq8HAbd8y5010ZEZE5mDzcLly4gHnz5uGdd97ByZMnsXv3bqSkpOCll16qdZnFixdDpVIZHunp6aYus0m09XLG2G7sUBkA/nvqJg5fzYeDnRyfPNuTY7QRkVmZ/Hrs6OhoDBo0CG+++SYAoEePHnB2dsaQIUPw/vvvw8/P775lFAoFFAqFqUszidlD22HnuUz8nJCBN0d3gp+y5XUIfKu4HP/YeQEAMG9ER4R4OUtcERG1NCb/c7qkpARyefXN2NhUXlRgjVcVhgW5Y0A7T1ToBVa10A6V/7HzIm6XaBHq64pZd+4BJCIyJ6PDraioCAkJCUhISAAAJCcnIyEhAWlpaQAqDylGRkYa5h8/fjy2bNmC5cuX4/r16zh8+DBee+019OvXD/7+/k3zLpqZOcPaAwDW/Z4GValW4mrM68i1PPz3VOXN2v98qjvseDiSiCRg9C/PiRMn0KtXL/Tq1QsAsHDhQvTq1QvvvPMOACAzM9MQdAAwffp0fPrpp/jyyy/RrVs3TJo0CZ06dcKWLVua6C00P8M7eqNTa1cUl+vw4+8tp0PlMq0Of9maCAD4f/2D8XAbD4krIqKWSiYs4NigWq2GUqmESqWCm5ub1OU0yJZTN7Bw4xl4uypwaNEjUNha//1dn8Zcxr/3XYGPqwK/vj4Mbg52UpdERFbEmCzgMSMTGR/mD3+lA3ILNdh2+qbU5Zjc1ZxCLI+9CgB498muDDYikhTDzUTsbOSYMbjyYooVB69Db8UdKuv1Am9vSYRWJ/BoqA/GdvOVuiQiauEYbiY0pV8buDrY4npuMX69mC11OSaz6WQ6jqXcgqOdDf4+oStH1iYiyTHcTMhFYYvnqzpUttKbuvOKNPjnrksAgIWPdUSgh5PEFRERMdxMbvqgtrC3keNk6m2cSLkldTlN7v0dF6Aq1aKrvxv+NKit1OUQEQFguJmcj6sDnu4dAMD6Wm+/XcnFtoQMyGVA9FPd2cUWETUb/DUyg1lD2kEmqxyN+mpOkdTlNInS8j/uaYsMb4sege7SFkREdBeGmxm093bBY51bAwC+tZLW2xf7ryDtVgl83RzwxuhOUpdDRFQNw81Mqrrk2nr6JrLVZRJX82AuZakNox4sndAVLgqT979NRGQUhpuZ9A72QN+2HijX6bH6cIrU5TRa5T1t51ChFxjVpTVGd+U9bUTU/DDczGjO0MrW24+/p6KwzDI7VF53LA2n0grgbG+DpRO6Sl0OEVGNGG5m9GioDzr4uKCwrALrj1nGAKx3y1GXYdnuynva3mihY9URkWVguJmRXC7D7KHtAAArDyWjvEIvcUXGWbrjAgrLKtAjUInI8LZSl0NEVCuGm5lN6OkPH1cFstRl+PlMhtTlNNiBSznYeTYTNnIZ/jmxO2zk7GKLiJovhpuZKWxtDB0qf3PwmkWMRl5SXoG/bqu8p23GoLboFqCUuCIiorox3CTwXP82cFHY4nJ2EWKTcqUup16f/XoFNwtKEeDuiAWPdZS6HCKiejHcJODmYIdp/dsAAL6OuyZxNXU7n6HCykPJAID3IrrCyZ73tBFR88dwk8ifBoXAzkaG35Nv4WRq8+xQWXfnnjadXuDx7n54NLS11CURETUIw00ivkoHRPSs7FB5+qrj2J7Q/Ebr/iE+BWduqOCqsMU747tIXQ4RUYMx3CS0aGwoegd7oFBTgXnrE7BgQ0Kzubk7U1WKj/deBgC8NTYUrd0cJK6IiKjhGG4S8nJRYMPsAZg/8iHIZZX9To779284mXpb6tLw7s/nUaSpQK827pjWr43U5RARGYXhJjFbGznmj+yITS+FI9DDEem3SvHsinh8/usVVOikucl77/ks7DmfDVu5DNFPdYec97QRkYVhuDUTvYM9sWveEET09IdOL/CvXy9jyjdHkX6rxKx15KjLsOTn8wCAF4e2Q6ivm1m3T0TUFBhuzYibgx0+m9ILn03uCReFLU6k3sa4z38zy8Um5zNUWLgxAYOW7UemqgxBno547dGHTL5dIiJT4E1LzVBErwD0DvbA/A0JOJl6G/PWJyA2KRd/n9AVrg52TbYdvV5g/6UcrDyUjPjr+YbpvYM98N6EbnC0t2mybRERmZNMWED/T2q1GkqlEiqVCm5uLecwWYVOjy8PXMW/912BXgBBno74bHIv9A72eKD1lpRX4L8nb2D14RRczysGANjIZRjX3Q8zB4egZ5B7E1RPRNS0jMkChpsFOJl6C/PWJ+DG7VLYyGV47dGHEPVIe9jaGHdUOVNViu+OpOKnY2lQlVbecuDqYIvn+rVB5MC2CHDnEDZE1Hwx3KyQukyLd7YlYltC5UgCfYI98K/JPRHk6VTvsmdvFGDloWTsPJuJCn3lf3dwKyfMGBSCZ3oHwlnBo9NE1Pwx3KzYttM38ddtiSjSVMBVYYv3J3bDhDs9ndxNpxeIuZCFlYeScTzlj/vm+od4YubgEIzo3JrD1hCRRTEmC4y+WvLgwYMYP348/P39IZPJsG3btnqX0Wg0+Mtf/oLg4GAoFAq0bdsWq1atMnbThMqLTX6ZNwQPt3E39Gyy8K6eTYo0FVh1KBnDPz6Al9aewvGU27CVyzCxVwB2vDoYG+aEY1RXXwYbEVk1o49HFRcXIywsDDNmzMBTTz3VoGWeffZZZGdnY+XKlejQoQMyMzOh11vWKNTNSZCnEzbOCccX+6/ii/1XsOX0TRxPvYVHO/lgy6mbKNRUAADcnSpHH4gMb8vus4ioRXmgw5IymQxbt25FRERErfPs3r0bU6ZMwfXr1+Hp6dmo7fCwZO1OpNzC/A2VF5tUaeftjJmDQ/BUr0Bezk9EVsOYLDD5lQQ///wz+vTpgw8//BA//PADnJ2d8eSTT+K9996DoyOvzntQfdpW9mwSvesScgvLMK1/MIZ19GaXWUTUopk83K5fv45Dhw7BwcEBW7duRV5eHl555RXk5+dj9erVNS6j0Wig0WgMz9VqtanLtGhuDnaIfqq71GUQETUbJu9+S6/XQyaT4ccff0S/fv0wbtw4fPrpp/juu+9QWlpa4zLR0dFQKpWGR1BQkKnLJCIiK2LycPPz80NAQACUSqVhWufOnSGEwI0bN2pcZvHixVCpVIZHenq6qcskIiIrYvJwGzRoEDIyMlBUVGSYdvnyZcjlcgQGBta4jEKhgJubW7UHERFRQxkdbkVFRUhISEBCQgIAIDk5GQkJCUhLSwNQ2eqKjIw0zP/cc8+hVatW+NOf/oQLFy7g4MGDePPNNzFjxgxeUEJERCZhdLidOHECvXr1Qq9evQAACxcuRK9evfDOO+8AADIzMw1BBwAuLi6IiYlBQUEB+vTpg2nTpmH8+PH497//3URvgYiIqDp2v0VERBbBpN1vERERNXcW0R18VeOS97sREbVcVRnQkAOOFhFuhYWFAMD73YiICIWFhdVuL6uJRZxz0+v1yMjIgKurK2Qyy+hWSq1WIygoCOnp6RZ3ntBSa2fd5meptbNu82uK2oUQKCwshL+/P+Tyus+qWUTLra574po7S75Pz1JrZ93mZ6m1s27ze9Da62uxVeEFJUREZHUYbkREZHUYbiaiUCiwZMkSKBQKqUsxmqXWzrrNz1JrZ93mZ+7aLeKCEiIiImOw5UZERFaH4UZERFaH4UZERFaH4UZERFaH4dYI0dHR6Nu3L1xdXeHj44OIiAgkJSXVucyaNWsgk8mqPRwcHMxU8R/efffd++oIDQ2tc5lNmzYhNDQUDg4O6N69O3bt2mWmav/Qtm3b++qWyWSIioqqcX4p9/fBgwcxfvx4+Pv7QyaTYdu2bdVeF0LgnXfegZ+fHxwdHTFy5EhcuXKl3vV+9dVXaNu2LRwcHNC/f38cO3bMbHVrtVosWrQI3bt3h7OzM/z9/REZGYmMjIw619mYz1tT1g0A06dPv6+GMWPG1LteU+/vhtRe02deJpPho48+qnWdpt7nDfn9KysrQ1RUFFq1agUXFxc8/fTTyM7OrnO9jf1e1Ibh1ghxcXGIiorC0aNHERMTA61Wi1GjRqG4uLjO5dzc3JCZmWl4pKammqni6rp27VqtjkOHDtU675EjRzB16lTMnDkTp0+fRkREBCIiIpCYmGjGioHjx49XqzkmJgYAMGnSpFqXkWp/FxcXIywsDF999VWNr3/44Yf497//ja+//hq///47nJ2dMXr0aJSVldW6zg0bNmDhwoVYsmQJTp06hbCwMIwePRo5OTlmqbukpASnTp3C3/72N5w6dQpbtmxBUlISnnzyyXrXa8znranrrjJmzJhqNfz00091rtMc+7shtd9dc2ZmJlatWgWZTIann366zvWacp835PdvwYIF+N///odNmzYhLi4OGRkZeOqpp+pcb2O+F3US9MBycnIEABEXF1frPKtXrxZKpdJ8RdViyZIlIiwsrMHzP/vss+Lxxx+vNq1///5izpw5TVyZcebNmyfat28v9Hp9ja83l/0NQGzdutXwXK/XC19fX/HRRx8ZphUUFAiFQiF++umnWtfTr18/ERUVZXiu0+mEv7+/iI6ONkvdNTl27JgAIFJTU2udx9jP24Oqqe4XXnhBTJgwwaj1mHt/C9GwfT5hwgTx6KOP1jmPuff5vb9/BQUFws7OTmzatMkwz8WLFwUAER8fX+M6Gvu9qAtbbk1ApVIBADw9Peucr6ioCMHBwQgKCsKECRNw/vx5c5R3nytXrsDf3x/t2rXDtGnTqo2cfq/4+HiMHDmy2rTRo0cjPj7e1GXWqry8HGvXrsWMGTPq7Ei7uezvuyUnJyMrK6vaPlUqlejfv3+t+7S8vBwnT56stoxcLsfIkSMl/X9QqVSQyWRwd3evcz5jPm+mEhsbCx8fH3Tq1Akvv/wy8vPza523ue7v7Oxs7Ny5EzNnzqx3XnPu83t//06ePAmtVltt/4WGhqJNmza17r/GfC/qw3B7QHq9HvPnz8egQYPQrVu3Wufr1KkTVq1ahe3bt2Pt2rXQ6/UYOHAgbty4YcZqgf79+2PNmjXYvXs3li9fjuTkZAwZMsQwrNC9srKy0Lp162rTWrdujaysLHOUW6Nt27ahoKAA06dPr3We5rK/71W134zZp3l5edDpdM3q/6GsrAyLFi3C1KlT6+wE19jPmymMGTMG33//Pfbt24dly5YhLi4OY8eOhU6nq3H+5ri/AeC7776Dq6trvYf3zLnPa/r9y8rKgr29/X1/9NS1/xrzvaiPRYwK0JxFRUUhMTGx3mPa4eHhCA8PNzwfOHAgOnfujBUrVuC9994zdZkGY8eONfy7R48e6N+/P4KDg7Fx48YG/UXYHKxcuRJjx46Fv79/rfM0l/1tjbRaLZ599lkIIbB8+fI6520On7cpU6YY/t29e3f06NED7du3R2xsLEaMGGGWGprCqlWrMG3atHovjDLnPm/o758U2HJ7AHPnzsWOHTtw4MABo4fksbOzQ69evXD16lUTVdcw7u7u6NixY611+Pr63neVU3Z2Nnx9fc1R3n1SU1Px66+/YtasWUYt11z2d9V+M2afenl5wcbGpln8P1QFW2pqKmJiYoweuqS+z5s5tGvXDl5eXrXW0Jz2d5XffvsNSUlJRn/uAdPt89p+/3x9fVFeXo6CgoJq89e1/xrzvagPw60RhBCYO3cutm7div379yMkJMTodeh0Opw7dw5+fn4mqLDhioqKcO3atVrrCA8Px759+6pNi4mJqdYqMqfVq1fDx8cHjz/+uFHLNZf9HRISAl9f32r7VK1W4/fff691n9rb26N3797VltHr9di3b59Z/x+qgu3KlSv49ddf0apVK6PXUd/nzRxu3LiB/Pz8WmtoLvv7bitXrkTv3r0RFhZm9LJNvc/r+/3r3bs37Ozsqu2/pKQkpKWl1br/GvO9aEihZKSXX35ZKJVKERsbKzIzMw2PkpISwzzPP/+8+POf/2x4vnTpUrFnzx5x7do1cfLkSTFlyhTh4OAgzp8/b9baX3/9dREbGyuSk5PF4cOHxciRI4WXl5fIycmpse7Dhw8LW1tb8fHHH4uLFy+KJUuWCDs7O3Hu3Dmz1i1E5RVrbdq0EYsWLbrvtea0vwsLC8Xp06fF6dOnBQDx6aefitOnTxuuKvzggw+Eu7u72L59uzh79qyYMGGCCAkJEaWlpYZ1PProo+KLL74wPF+/fr1QKBRizZo14sKFC2L27NnC3d1dZGVlmaXu8vJy8eSTT4rAwECRkJBQ7XOv0Whqrbu+z5up6y4sLBRvvPGGiI+PF8nJyeLXX38VDz/8sHjooYdEWVlZrXWbY3/XV3sVlUolnJycxPLly2tch7n3eUN+/1566SXRpk0bsX//fnHixAkRHh4uwsPDq62nU6dOYsuWLYbnDfleGIPh1ggAanysXr3aMM+wYcPECy+8YHg+f/580aZNG2Fvby9at24txo0bJ06dOmX22idPniz8/PyEvb29CAgIEJMnTxZXr16ttW4hhNi4caPo2LGjsLe3F127dhU7d+40c9WV9uzZIwCIpKSk+15rTvv7wIEDNX4+qurT6/Xib3/7m2jdurVQKBRixIgR972n4OBgsWTJkmrTvvjiC8N76tevnzh69KjZ6k5OTq71c3/gwIFa667v82bquktKSsSoUaOEt7e3sLOzE8HBweLFF1+8L6Sk2N/11V5lxYoVwtHRURQUFNS4DnPv84b8/pWWlopXXnlFeHh4CCcnJzFx4kSRmZl533ruXqYh3wtjcMgbIiKyOjznRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVofhRkREVuf/A9syNj3X13zDAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "# 绘制曲线\n",
        "plt.figure(figsize=(5, 3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), lossv)\n",
        "plt.title('validation loss')\n",
        "\n",
        "plt.figure(figsize=(5,3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), top1AccuracyList)\n",
        "plt.title('validation top1 accuracy')\n",
        "\n",
        "plt.figure(figsize=(5,3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), top5AccuracyList)\n",
        "plt.title('validation top5 accuracy')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "fyWGvlbHup5w"
      },
      "outputs": [],
      "source": []
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "provenance": []
    },
    "gpuClass": "standard",
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}